package psn.hui.sys.service;

import java.util.List;

import psn.hui.sys.domain.Menu;
import psn.hui.sys.domain.Role;
import psn.hui.sys.utils.DataGridView;
import psn.hui.sys.vo.RoleVo;

/**
 * 	角色管理接口
 * @author hui
 *
 */
public interface RoleService {
	
	/**
	 * 	插入角色数据，带动态sql
	 * @param record
	 * @return
	 */
	int insertSelective(Role record);
	/**
	 * 	根据id修改角色数据
	 * @param record
	 * @return
	 */
	int updateByPrimaryKeySelective(Role record);
	/**
	 * 	根据id删除角色数据
	 * @param id
	 * @return
	 */
	int deleteById(Integer id);
	
	 /**
     * 	查询所有角色
     */
    public List<Role> queryAllRoleForList(Role record);
    /**
     * 	批量删除角色数据，并关联删除sys_role_menu和sys_role_user表的数据
     * @param ids
     * @return
     */
    public int batchDeleteRoleByIds(Integer[] ids);
    
	/**
	 * 	保存分配角色菜单，先删除旧的分配记录，在添加新的
	 * @param roleVo
	 * @return
	 */
	int saveRoleMenu(RoleVo roleVo);
	
	/**
     * 	根据用户ID查询用户可用角色
     */
    public List<Role> queryRoleByUserIdForList(Integer available, Integer userId);
	/**
	 * 	初始化数据表格，根据用户id选中
	 * @param userid
	 * @return
	 */
	DataGridView initRoleTableByUserId(Integer userid);
}
